嵌入式MCU |
您所在的位置:网站首页 › sin cos tan的运算 › 嵌入式MCU |
在嵌入式单片机中,MCU的运算性能往往是有限的,在嵌入式编程中常常会碰到三角函数的运算,精确的三角函数运算是十分消耗MCU资源的,在这个过程中我们应权衡计算负担和计算精度。 以下是在嵌入式单片机中资源相对紧张对计算精度不是十分严格的情况下实现的三角函数运算,函数通过查表得方法,在确保一定精度的前提下,大大节省了MCU的计算资源。 1.函数声明: int common_sin_val_calculate(int angle); int common_cos_val_calculate(int angle); int common_tan_val_calculate(int angle); #define SIN(val) common_sin_val_calculate(val) / 100.0 #define COS(val) common_cos_val_calculate(val) / 100.0 #define TAN(val) common_tan_val_calculate(val) / 100.02. 数据资源表: static const int sinTable[91] = {0, 2, 3, 5, 7, 9, 10, 12, 14, 16, 17, 19, 21, 22, 24, 26, 28, 29, 31, 33, 34, 36, 37, 39, 41, 42, 44, 45, 47, 48, 50, 52, 53, 54, 56, 57, 59, 60, 62, 63, 64, 66, 67, 68, 69, 70, 72, 73, 74, 75, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 87, 88, 89, 90, 91, 91, 92, 93, 93, 94, 95, 95, 96, 96, 97, 97, 97, 98, 98, 98, 99, 99, 99, 99, 100, 100, 100, 100, 100, 100}; static const int cosTable[91] = {100, 100, 100, 100, 100, 100, 99, 99, 99, 99, 98, 98, 98, 97, 97, 97, 96, 96, 95, 95, 94, 93, 93, 92, 91, 91, 90, 89, 88, 87, 87, 86, 85, 84, 83, 82, 81, 80, 79, 78, 77, 75, 74, 73, 72, 71, 69, 68, 67, 66, 64, 63, 62, 60, 59, 57, 56, 54, 53, 52, 50, 48, 47, 45, 44, 42, 41, 39, 37, 36, 34, 33, 31, 29, 28, 26, 24, 22, 21, 19, 17, 16, 14, 12, 10, 9, 7, 5, 3, 2, 0};3.函数实现: /*angle:(0 ~3600) return sin(angle) * 100*/ int common_sin_val_calculate(int angle) // { angle = (angle + 3600 ) % 3600; if ((angle >= 0) && (angle 900) && (angle 1800) && (angle = 0) && (angle 900) && (angle 1800) && (angle |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |